草庐IT

SQL ALTER TABLE 语句

全部标签

php - 将正则表达式绑定(bind)到 PDO 语句中的 PDO 参数

好的,所以我对php和mysql还很陌生。我正在为mysql数据库创建一个php前端。我正在使用PDO驱动程序访问数据库,因为它可以防止sql注入(inject)攻击。到目前为止,一切都很好,直到我遇到这个问题。我有一个搜索功能,用户可以在其中输入完整或部分公司名称来搜索有关它的数据。这是我用来在数据库中进行搜索的PDO语句:SELECTCompNameFROMCompanyNameWHERECompNameREGEXP:nameORDERBYCompNameASCLIMIT1然后我可以准备,将用户在搜索字段中键入的内容绑定(bind)到参数名称并执行语句。只要用户不键入任何元字符,它

mysql - mysql更新语句中的用户变量

设t是一个mysql表,n是其中的一个整数列。如果可以修改以下查询,使表达式n-10只计算一次,我会很感兴趣。UPDATEtSETn=if(n-10我知道查询没有意义,但我需要在实际应用程序中使用相同的模式,其中值10和5将是php变量。 最佳答案 好吧,我终于找到了正确的语法。@tmp:=n-10两边的括号很重要。UPDATEtSETn=if((@tmp:=n-10) 关于mysql-mysql更新语句中的用户变量,我们在StackOverflow上找到一个类似的问题:

php - 无法将语句插入数据库

我有一些句子。我必须选择包含超过6个单词的句子。然后它们将被插入到数据库中。6){$save=$sentence.".";$sql=mysql_query("INSERTINTOtb_nameVALUES('','$save')");}}?>结果只是插入数据库的第二句话=>'你在飞行时读诗吗?许多人发现在长途飞行中阅读可以放松身心。而第三句也应插入。请帮助我,谢谢:) 最佳答案 这是您正在寻找的解决方案。您不能添加多行,因为您的ID值未指定并且它是表中的键。由于要将句子添加到同一行,因此需要执行一次查询。$text="Poetry.

mysql - 在 SQL 语句中对 utf8_bin 中的字段进行 COLLATE 比使用默认排序规则慢?

两种情况:使用默认排序规则:CREATETABLEIFNOTEXISTS`table`(`name`varchar(255)collateutf8_general_ciNOTNULL,UNIQUEKEY`name`(`name`))ENGINE=MyISAMDEFAULTCHARSET=utf8;SELECT`name`FROM`table`ORDERBY`name`;使用COLLATE:CREATETABLEIFNOTEXISTS`table`(`name`varchar(255)collateutf8_binNOTNULL,UNIQUEKEY`name`(`name`))ENGIN

mysql - 是什么导致我的 UPDATE 语句不起作用?

大家晚上好我正在使用以下内容尝试更新我的MySQL数据库中的记录,但记录没有更新,我也没有捕获到任何异常。非常感谢您的帮助:dbConn=NewMySqlConnection("Server="&FormLogin.ComboBoxServerIP.SelectedItem&";Port=3306;Uid=trojan;Password=horse;Database=accounting")TryIfdbConn.State=ConnectionState.OpenThendbConn.Close()ElseTrydbConn.Open()DimdbAdapterAsNewMySqlD

PHP Prepared MySQL 语句开始加引号

因此,我已经在多个项目中使用准备好的语句一段时间了,这是与MySQL数据库交互的一种非常干净的方式,但今天我遇到了一个奇怪的问题。我准备好的语句已经开始向sql语句添加额外的'并且对于我的生活我不知道为什么......代码如下:_db->prepare($sql);$stmt->bindParam(":sortby",$sortby,PDO::PARAM_STR);$stmt->bindParam(":offset",$offset,PDO::PARAM_INT);$stmt->execute();?>所以上面没有返回任何东西,所以查看数据库日志,这就是查询的样子SELECTimg_i

mysql - 优化where语句MYSQL

我正在编写这个复杂的查询以返回一个大型数据集,大约有100,000条记录。在我将此OR语句添加到WHERE子句之前,查询运行良好:AND(responses.StrategyFk=strategies.IdOrresponses.StrategyFkISNull)现在我明白了,将or语句放在那里会增加很多开销。没有那个声明,只是:ANDresponses.StrategyFk=strategies.Id查询在15秒内运行,但不会返回任何没有fk链接策略的记录。虽然我也想要这些唱片。有没有更简单的方法可以通过简单的where语句找到这两条记录?我不能只为空记录添加另一个AND语句,因为那

php - 是否可以将 PDO 准备好的语句存储在 PHP/Mysql/APC/Memcache 中以供重用?

...如果是这样,它会更快吗?我的用例是托管RESTAPI的典型LAMP堆栈。这个API的结构使得我有10个(将增长到大约50个)不同的查询,这些查询将使用不同的输入运行,我预计频率会非常快。我特别没有询问查询的结果缓存,因为我对此有足够的了解可以单独进行。我特别关心的是,95%的应用程序逻辑都是客户端JS,大量的微小REST请求主要是做小查询并将它们返回给浏览器进行处理,最终会做很多事情每个请求的冗余工作。如果我可以使用持久连接,并检查APC或内存缓存中的PDO准备语句,并重新使用它,我希望能大大减少apache服务器到mysql服务器的开销。我看到http://dev.mysql.

php - 带有两个 SELECT 语句的 INSERT

这是我目前正在尝试的,但我收到了一个mySQL错误:mysql_query("INSERTINTOprofile_tag(profile_id,tag_id)(SELECTprofile_idFROMprofileWHEREusername='$username'),(SELECTtag_idFROMtagWHEREtag='$music'ORtag='$sports'ORtag='$tech')");不过,我可以使用单个SELECT语句完成一个INSERT,而不是两个。我收到的错误:Queryisinvalid:YouhaveanerrorinyourSQLsyntax;checkt

mysql - 根据一个字段从表中获取数据的SELECT语句

有一个sql语句从这个sqlfiddle返回有值(value)的信息CREATETABLE`civil`(civil_idINTEGERNOTNULLPRIMARYKEY,nameVARCHAR(25),address_civilVARCHAR(40)NOTNULL,telephoneVARCHAR(20)NOTNULL,emailVARCHAR(30)NOTNULL,commentVARCHAR(35)NOTNULL,CONSTRAINT`uc_Info_civil`UNIQUE(`civil_id`));CREATETABLE`worker`(worker_idINTEGERNOT